package main

import "fmt"

type Usb interface {
	Start()
	Stop()
}

type Phone struct {
	Name string
}

func (p *Phone) Start() {
	fmt.Println("phone start...")
}

func (p *Phone) Stop() {
	fmt.Println("phone stop....")
}

type Cramer struct {
}

func (p *Cramer) Start() {
	fmt.Println("Cramer start...")
}

func (p *Cramer) Stop() {
	fmt.Println("Cramer stop....")
}

type Computer struct {
}

//实现了某一个接口，就是实现该接口的所有方法
//实现了Usb接口，就是结构体实现Start和Stop方法
func (c *Computer) Working(usb Usb) {
	usb.Start()
	usb.Stop()
}

//多态使用
func main() {
	var usbArr [3]Usb
	usbArr[0] = &Phone{"ceshi"}
	usbArr[0] = &Phone{"vivo"}
	usbArr[1] = &Cramer{}
}
